package com.aqiang9.epidemic.controller;

import com.aqiang9.epidemic.pojo.Info;
import com.aqiang9.epidemic.pojo.ResultData;
import com.aqiang9.epidemic.service.InfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

/**
 * @author aqiang9  2020-03-21
 */
@RestController
public class InfoController {
    @Autowired
    private InfoService infoService;

    /**
     * 获取 所有的省 名
     *
     * @return
     */
    @RequestMapping("/allProvince.do")
    List<String> getAllProvince() {
        return infoService.getAllProvince();
    }

    /**
     * 查询 确诊人数、治愈人数、死亡人数
     *
     * @return map
     */
    @RequestMapping("/allCount.do")
    Map<String, Object> getAllCount() {
        return infoService.getAllCount();
    }

    /**
     * 获取 相关省份的  地区数据
     *
     * @param provincialName 省名称
     * @return
     */
    @RequestMapping("/provincialLocal.do")
    List<Info> getProvincialLocal(@RequestParam("provincialName") String provincialName) {
        return infoService.getProvincialLocal(provincialName);
    }


    /**
     * 获取 确诊总人数
     *
     * @return
     */
    @GetMapping("/count.do")
    Integer getCountConfirmCount() {
        return infoService.getCountConfirmCount();
    }

    /**
     * 各省 确诊人数前五的  地区
     *
     * @param provincialName 省名称
     * @param limit          前几位
     * @return 区域名 + 数量的集合
     */
    @GetMapping("/confirmCount.do")
    List<ResultData> getTopByConfirmWithProvinceLocal(@RequestParam("provincialName") String provincialName,
                                                      @RequestParam(value = "limit", required = false, defaultValue = "5") Integer limit) {
        return infoService.getTopByConfirmWithProvinceLocal(provincialName, limit);
    }

    /**
     * 各省治愈人数前五的地区
     *
     * @param provincialName 省名称
     * @param limit          前几位  默认为前五
     * @return 区域名 + 数量的集合
     */
    @GetMapping("/cureCount.do")
    List<ResultData> getTopByCureWithProvinceLocal(@RequestParam("provincialName") String provincialName,
                                                   @RequestParam(value = "limit", required = false, defaultValue = "5") Integer limit) {
        return infoService.getTopByCureWithProvinceLocal(provincialName, limit);
    }

    /**
     * 各省死亡前五的地区
     *
     * @param provincialName 省名称
     * @param limit          前几位
     * @return 区域名 + 数量的集合
     */
    @GetMapping("/deathCount.do")
    List<ResultData> getTopByDeathWithProvinceLocal(@RequestParam("provincialName") String provincialName,
                                                    @RequestParam(value = "limit", required = false, defaultValue = "5") Integer limit) {
        return infoService.getTopByDeathWithProvinceLocal(provincialName, limit);
    }

    /**
     * 获取各省的 确诊情况显示到 中国地图中
     *
     * @return Map
     */
    @RequestMapping("/allProvinceSituation.do")
    List<ResultData> getAllProvinceSituation(){
        return infoService.getAllProvinceSituation() ;
    }

}
